package util.AST.Comando;

import java.util.ArrayList;

import checker.SemanticException;
import checker.Visitor;

import util.AST.AST;

public  class Programa extends AST {

	private ArrayList<Comando> comandos = null;
	
	public Programa(ArrayList<Comando> comandos) {
		this.comandos = comandos;
	}
	
	public ArrayList<Comando> getCommandos() {
		return comandos;
	}

	public String toString(int level) {
		int nextLevel = level + 3;
		StringBuffer str = new StringBuffer();
		str.append("|-PROGRAMA\n");
		if(this.comandos != null){
			for(Comando comando : this.comandos){
				str.append(super.getSpaces(nextLevel) + "|-");
				str.append(comando.toString(nextLevel));
			}
		}
		return str.toString();
	}

	@Override
	public Object visit(Visitor v, Object o) throws SemanticException {
		return v.visitPrograma(this, o);
	}

}
